package com.ruoyi.system.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SysGroupDataMapper;
import com.ruoyi.system.domain.SysGroupData;
import com.ruoyi.system.service.ISysGroupDataService;

/**
 * 组合数据Service业务层处理
 * 
 * @author zouhuu
 * @date 2022-08-01
 */
@Service
public class SysGroupDataServiceImpl implements ISysGroupDataService 
{
    @Autowired
    private SysGroupDataMapper sysGroupDataMapper;

    /**
     * 查询组合数据列表 通过key
     * @param key
     * @return
     */
    @Override
    public List<JSONObject> selectSysGroupDataListByKey(String key) {
        List<SysGroupData> sysGroupData = sysGroupDataMapper.selectSysGroupDataListByKey(key);
        List<JSONObject> collect = sysGroupData.stream().map(item -> JSONUtil.parseObj(item.getGroupValue())).collect(Collectors.toList());
        return collect;
    }


    /**
     * 查询组合数据
     * 
     * @param id 组合数据主键
     * @return 组合数据
     */
    @Override
    public SysGroupData selectSysGroupDataById(Long id)
    {
        return sysGroupDataMapper.selectSysGroupDataById(id);
    }

    /**
     * 查询组合数据列表
     * 
     * @param sysGroupData 组合数据
     * @return 组合数据
     */
    @Override
    public List<SysGroupData> selectSysGroupDataList(SysGroupData sysGroupData)
    {
        return sysGroupDataMapper.selectSysGroupDataList(sysGroupData);
    }

    /**
     * 新增组合数据
     * 
     * @param sysGroupData 组合数据
     * @return 结果
     */
    @Override
    public int insertSysGroupData(SysGroupData sysGroupData)
    {
        sysGroupData.setCreateTime(DateUtils.getNowDate());
        return sysGroupDataMapper.insertSysGroupData(sysGroupData);
    }

    /**
     * 修改组合数据
     * 
     * @param sysGroupData 组合数据
     * @return 结果
     */
    @Override
    public int updateSysGroupData(SysGroupData sysGroupData)
    {
        sysGroupData.setUpdateTime(DateUtils.getNowDate());
        return sysGroupDataMapper.updateSysGroupData(sysGroupData);
    }

    /**
     * 批量删除组合数据
     * 
     * @param ids 需要删除的组合数据主键
     * @return 结果
     */
    @Override
    public int deleteSysGroupDataByIds(Long[] ids)
    {
        return sysGroupDataMapper.deleteSysGroupDataByIds(ids);
    }

    /**
     * 删除组合数据信息
     * 
     * @param id 组合数据主键
     * @return 结果
     */
    @Override
    public int deleteSysGroupDataById(Long id)
    {
        return sysGroupDataMapper.deleteSysGroupDataById(id);
    }
}
